컨트롤러나 PLC로부터 입력되는 PULSE신호를 받아서 계산하는 방법이다.
주의 할 점은 감시프로그램에서 스크립트 프로그램을 사용하여 계산하기 위해서는 Pulse신호가 최소한 1초는 되어야 한다는 것이다. 왜냐하면 통신프로그램에서 감시프로그램으로 감시한 Signal을 정확히 전달하는 시간은 1초이기 때문이다. 즉, 1초 미만이 되면 프로그램의 부하속도에 따라서 신호를 처리할 수도 있고, 처리하지 못할수도 있기 때문이다.
DI_0000이라는 디지털 입력 태그로 이 Pulse신호를 받고, Pulse가 Low->High상태로 될 때 신호를 감지하여 전력량을 계산한다고 하자( 1Pulse당 10W(와트)이고, 전력량 계산값은 AI_POWER라는 아날로그 메모리 태그로 넘긴다.).
다음과 같이 ‘편집기|스크립트|감시프로그램 실행 중에 계속’에서 편집을 해준다.
If ( DI_0000 == OFF && flag == 0 ) return; // DI_0000 이 OFF상태이고 flag 가 0 일 때 아래의 프로그램을 수행하지 않고 끝낸다.
If ( DI_0000 == ON && flag == 1 ) return; // DI_0000 이 ON 상태이고, flag 가 1 일 때 아래의 프로그램을 수행하지 않고 끝낸다.
If ( DI_0000 == ON && flag == 0 ) { // DI_0000 이 Low -> High 상태로 될 때 조건문 안의 프로그램을 수행한다.
$AI_POWER = $AI_POWER + 10;
flag=1;
return;
}
If ( DI_0000 == OFF && flag == 1 ) { // DI_0000 이 High -> Low 상태로 될 때 조건문 안의 프로그램을 수행한다.
flag=0;
return;
}
위의 프로그램에서 flag는 스크립트 작성기에서 char 변수로 잡는다.
프로그램에서 맨위 두 줄은 항상 앞에 놓는다. 이유는 맨위 두 조건의 상태가 가장 일반적인 상황이므로 위의 두 조건의 상황이 될 때 아래의 프로그램을 수행하지 않으므로 프로그램의 실행속도를 높일 수 있다.
위와 같이 프로그램을 작성함으로써 1펄스 마다 한번씩 계산할 수 있게끔 된다.